//*************************************************************************************
// EGTB Generator Main Header File
//*************************************************************************************

#pragma once


// basic helper function and macro header files
#include "EndGameDbCommon.h"
#include "..\Engine\Bool.h"
#include "..\Engine\BinomCoef.h"
#include "..\Engine\Index.h"

// headers containing templated functions
#include "DatabaseRawT.h"
#include "LookupT.h"
#include "RetrogradeT.h"
#include "BuildDbT.h"

// compression and compression verification - templates
#include "CompressT.h"
#include "CompressionVerificationT.h"

// Computing termination macros
#include "Terminate.h"

// EGTB Validator
#include "ValidatorT.h"


namespace EndGameDB
{
	extern int iGeneratorLog;

	// initialization of EGTB Generator
	template<int BitsPerRow, int MaxField>
	void InitEndGameDb()
	{
		InitBool();
		InitBinomCoef();
		InitDatabaseRaw<BitsPerRow, MaxField>();
		InitCompress();

		InitEngine();
	}
}